WM_PAINT, WM_CLOSE, WM_SIZE ইত্যাদি উইন্ডো ম্যাসেজ

MFC এর Events এবং Message Handling Mechanism - এমএফসি (MFC) - Microsoft Technologies

350

MFC (Microsoft Foundation Classes) এর মাধ্যমে উইন্ডো অ্যাপ্লিকেশন তৈরি করার সময়, বিভিন্ন উইন্ডো ম্যাসেজ (Window Messages) ব্যবহার করা হয়, যা উইন্ডোর আচরণ এবং ইন্টারঅ্যাকশন কন্ট্রোল করতে সাহায্য করে। MFC তে এই ম্যাসেজগুলো স্বয়ংক্রিয়ভাবে হ্যান্ডল করা হয়, তবে প্রয়োজনে আপনি নিজে এগুলো হ্যান্ডল করতে পারেন।

WM_PAINT, WM_CLOSE, WM_SIZE এবং অন্যান্য উইন্ডো ম্যাসেজগুলি হল উইন্ডোর জীবনচক্রের অংশ, যা গ্রাফিক্যাল ড্রইং, উইন্ডোর আকার পরিবর্তন, এবং উইন্ডো বন্ধ করার মতো কার্যকলাপ পরিচালনা করে।


WM_PAINT ম্যাসেজ

WM_PAINT ম্যাসেজটি যখন উইন্ডো বা কন্ট্রোলের ভিউ আপডেট করতে হয়, তখন তৎকালীন সিস্টেম থেকে পাঠানো হয়। সাধারণত, যখন উইন্ডো রিফ্রেশ করা হয় (যেমন উইন্ডো সাইজ পরিবর্তন, অথবা অন্য কোনো কারণে উইন্ডো পুনরায় দেখা যায়), তখন WM_PAINT ম্যাসেজটি কল হয়। এই ম্যাসেজের মাধ্যমে আপনি উইন্ডোর কন্টেন্ট ড্রয়িং করতে পারেন।

WM_PAINT হ্যান্ডল করার জন্য OnPaint মেথড ব্যবহার করা হয়, যেখানে আপনি উইন্ডোর কন্টেন্ট কাস্টম ড্র করতে পারেন।

WM_PAINT হ্যান্ডল করার উদাহরণ:

void CMyWnd::OnPaint()
{
    CPaintDC dc(this); // Device Context for painting

    // Draw a red rectangle
    CRect rect(10, 10, 200, 200);
    dc.FillSolidRect(rect, RGB(255, 0, 0)); // Red background
}

এখানে, OnPaint মেথডে CPaintDC ব্যবহার করা হয়েছে, যা ড্রইং ডিভাইসের সাথে যোগাযোগ স্থাপন করে। রেকট্যাঙ্গেল ড্র করতে FillSolidRect ফাংশন ব্যবহার করা হয়েছে।


WM_CLOSE ম্যাসেজ

WM_CLOSE ম্যাসেজটি একটি উইন্ডো বন্ধ করার জন্য ব্যবহৃত হয়। সাধারণত যখন ব্যবহারকারী উইন্ডোটি বন্ধ করতে চান (যেমন উইন্ডোর "X" বাটন ক্লিক করলে), তখন এই ম্যাসেজটি পাঠানো হয়। আপনি WM_CLOSE ম্যাসেজ হ্যান্ডল করে উইন্ডো বন্ধ হওয়ার আগে কিছু ক্লিনআপ বা চেক করতে পারেন, যেমন ব্যবহারকারীকে কনফার্মেশন ডায়ালগ দেখানো, ডাটা সেভ করা ইত্যাদি।

WM_CLOSE হ্যান্ডল করার উদাহরণ:

void CMyWnd::OnClose()
{
    if (AfxMessageBox(_T("Are you sure you want to exit?"), MB_YESNO) == IDYES)
    {
        CWnd::OnClose(); // Close the window
    }
}

এখানে, OnClose মেথডে, প্রথমে একটি কনফার্মেশন মেসেজ বক্স দেখানো হয়েছে। যদি ব্যবহারকারী "Yes" বেছে নেন, তবে উইন্ডো বন্ধ হবে।


WM_SIZE ম্যাসেজ

WM_SIZE ম্যাসেজটি তখন পাঠানো হয় যখন উইন্ডোর আকার পরিবর্তিত হয় (যেমন উইন্ডোটি রিসাইজ করা হলে)। এটি উইন্ডোর নতুন আকার (প্রস্থ এবং উচ্চতা) সম্পর্কে তথ্য প্রদান করে। আপনি এই ম্যাসেজটি হ্যান্ডল করে উইন্ডোর আকার পরিবর্তনের উপর নির্ভর করে বিশেষ কোন লেআউট বা রেন্ডারিং কাজ করতে পারেন।

WM_SIZE হ্যান্ডল করার উদাহরণ:

void CMyWnd::OnSize(UINT nType, int cx, int cy)
{
    CWnd::OnSize(nType, cx, cy);

    // Handle window resizing logic
    // For example, adjusting the position of controls
    if (nType == SIZE_RESTORED || nType == SIZE_MAXIMIZED)
    {
        // Code to resize controls based on new window size
        m_button.MoveWindow(10, 10, cx - 20, cy - 20); // Resize a button
    }
}

এখানে, OnSize মেথডে, উইন্ডোর নতুন আকার (প্রস্থ cx এবং উচ্চতা cy) পাওয়ার পরে, আপনি উইন্ডোর কন্ট্রোলগুলোর অবস্থান বা আকার পরিবর্তন করতে পারেন।


অন্যান্য সাধারণ উইন্ডো ম্যাসেজ

MFC তে আরও অনেক উইন্ডো ম্যাসেজ রয়েছে যেগুলো দিয়ে উইন্ডোর আচরণ নিয়ন্ত্রণ করা যায়। কিছু গুরুত্বপূর্ণ উইন্ডো ম্যাসেজ:

WM_CREATE

এই ম্যাসেজটি তখন পাঠানো হয় যখন একটি উইন্ডো তৈরি করা হয়। এটি উইন্ডোর শুরুতে কাস্টমাইজেশন করার জন্য ব্যবহৃত হয়।

void CMyWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CWnd::OnCreate(lpCreateStruct) == -1)
        return -1;

    // Initialization code here
    return 0;
}

WM_DESTROY

এই ম্যাসেজটি তখন পাঠানো হয় যখন উইন্ডো ধ্বংস করা হয় (যেমন উইন্ডো বন্ধ হলে)। এটি সাধারণত উইন্ডো ধ্বংসের আগে কিছু ক্লিনআপ কাজ করতে ব্যবহৃত হয়।

void CMyWnd::OnDestroy()
{
    CWnd::OnDestroy();
    // Clean-up code here
}

WM_COMMAND

এই ম্যাসেজটি তখন পাঠানো হয় যখন ব্যবহারকারী কন্ট্রোল (যেমন বাটন ক্লিক করা) দিয়ে কোনো অ্যাকশন ট্রিগার করেন। এই মেসেজের মাধ্যমে আপনি কন্ট্রোল ইভেন্ট হ্যান্ডল করতে পারেন।

void CMyWnd::OnCommand(UINT nID)
{
    if (nID == ID_FILE_EXIT)
    {
        PostMessage(WM_CLOSE); // Close the window
    }
}

সারাংশ

MFC তে WM_PAINT, WM_CLOSE, WM_SIZE ইত্যাদি উইন্ডো ম্যাসেজগুলি উইন্ডোর আচরণ নিয়ন্ত্রণ করতে ব্যবহৃত হয়। WM_PAINT ম্যাসেজ গ্রাফিক্স ড্রইংয়ের জন্য, WM_CLOSE উইন্ডো বন্ধ করার জন্য এবং WM_SIZE উইন্ডোর আকার পরিবর্তন সংক্রান্ত তথ্য দেয়। এই উইন্ডো ম্যাসেজগুলো হ্যান্ডল করে আপনি আপনার অ্যাপ্লিকেশনের ইন্টারঅ্যাকশন এবং প্রদর্শন কাস্টমাইজ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...